package cn.zhx.xa.bi.service;

import cn.zhx.xa.model.dto.bi.ChartQueryRequest;
import cn.zhx.xa.model.dto.bi.GenChartByAiRequest;
import cn.zhx.xa.model.entity.BiChart;
import cn.zhx.xa.model.vo.bi.BiVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jetbrains.annotations.NotNull;
import org.springframework.web.multipart.MultipartFile;

/**
* @author DELL
* @description 针对表【bi_chart(图表信息表)】的数据库操作Service
* @createDate 2024-02-04 19:53:56
*/
public interface BiChartService {


    /**
     * 生成图标信息（同步)
     *
     * @param multipartFile
     * @param genChartByAiRequest
     * @return
     */
//    BiVo genChartByAi(MultipartFile multipartFile, GenChartByAiRequest genChartByAiRequest);


    /**
     * 分页查询相关信息
     * @param chartQueryRequest
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<BiChart> page(ChartQueryRequest chartQueryRequest, Integer pageNum, Integer pageSize);

    /**
     * 生成图标信息（异步)
     * @param multipartFile
     * @param genChartByAiRequest
     * @return
     */
    BiVo genChartByAiAsync(MultipartFile multipartFile, GenChartByAiRequest genChartByAiRequest);


    /**
     * 生成图标信息（消息队列)
     * @param multipartFile
     * @param genChartByAiRequest
     * @return
     */
    BiVo getBiResponseAsyncMq(MultipartFile multipartFile,GenChartByAiRequest genChartByAiRequest);

    /**
     * 处理AI数据
     * @param chartResult
     * @return
     */
    BiVo getOrganizeAiData(Long id,String chartResult);


    /**
     * 删除图表
     * @param chartId
     * @return
     */
    Void deleteChartById(Long chartId);

    /**
     * 构建用户输入信息
     *
     * @param chart
     * @return
     */
    @NotNull
    String constructUserInput(BiChart chart);
}
